﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
//int removeElement(int* nums, int numsSize, int val) {
//	for (int i = 0; i < numsSize; i++)
//	{
//		if (nums[i] == val)
//		{
//			for (int j = i; j < numsSize - 1; j++)
//			{
//				nums[j] = nums[j + 1];
//			}
//			i -= 1;
//			numsSize -= 1;
//		}
//	}
//	return numsSize;
//}
//int removeElement(int* nums, int numsSize, int val) {
//	if (numsSize < 1) {         //当数组中没有元素是，直接返回数组的个数 
//		return numsSize;
//	}
//	int cur = 0, dest = 0;
//	while (cur < numsSize) {      //循环numsSize趟
//		if (nums[cur] == val) {
//			cur++;
//		}
//		else {
//			nums[dest++] = nums[cur++];   // 相等两个下标同时++ 
//		}
//	}
//	return dest;
//}
int removeElement(int* nums, int numsSize, int val) {
	int size = 0;
	int i = 0;
	for (i = 0; i <= numsSize - 1; i++)
	{
		if (nums[i] != val)
		{
			nums[size++] = nums[i];
		}
	}
	return size;
}
int main()
{
	int arr[] = { 1,2,2,1 };
	int ma = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n", ma);
	int as = removeElement(arr, ma, 2);
	for (int i = 0; i < as; i++)
	{
		printf("%d\n", arr[i]);
	}

	return 0;
}